Code for the Online Stock Brokerage System

We've reviewed different aspects of the online stock brokerage system and observed the attributes attached to the problem using various UML diagrams. Let’s explore the more practical side of things, where we will work on implementing the online stock brokerage system using multiple languages. This is usually the last step in an object-oriented design interview process.

We have chosen the following languages to write the skeleton code of the different classes present in the online stock brokerage system:

  • Java

  • C#

  • Python

  • C++

  • JavaScript

Online stock brokerage system classes#

In this section, we’ll provide the skeleton code of the classes designed in the class diagram lesson.

Note: For simplicity, we are not defining getter and setter functions. The reader can assume that all class attributes are private and accessed through their respective public getter methods and modified only through their public method functions.

Enumerations and custom data type#

First of all, we will define all the enumerations required in the stock brokerage system. According to the class diagram, there are three enumerations used in the system i.e. OrderStatus, TimeEnforcementType and AccountStatus. The code to implement these enumerations and custom data types is as follows:

Note: JavaScript does not support enumerations, so we will be using the Object.freeze() method as an alternative that freezes an object and prevents further modifications.

Definition of enums and custom datatypes

Account#

The Account class will be an abstract class, which will have the actors, Admin and Member, as child classes. The definition of these classes is given below:

Account and its child classes

Watchlist and stock #

A Watchlist class is a list of stocks that an investor keeps an eye on, to profit from price drops. The Stock class is an equity or a security that represents a portion of the issuing company's ownership.

The Watchlist and the Stock classes

Search and stock inventory#

The StockInventory class implements the Search interface.

The Search interface and the StockInventory class

Stock position and stock lot #

All the stocks that the user owns will be included in the StockPosition class. A member may purchase various lots of the same stock at various dates. The StockLot class will represent these particular lots.

The StockPosition and StockLot classes

Order#

Members can place stock trading orders when they want to sell or acquire StockPosition.

OrderPart, Order and its derived classes

Transfer money#

Members should be able to deposit and withdraw money either via Check, Wire, or ElectronicBank transfer.

TransferMoney and its derived classes

Notification#

The Notification class is another abstract class responsible for sending notifications to the users, with the SmsNotification and EmailNotification classes as its child. The implementation of this class is shown below:

Notification and its derived classes

Stock exchange#

The stock brokerage system will get all the stocks and their current pricing from the StockExchange class.

The StockExchange class

Wrapping up#

We've explored the complete design of an online stock brokerage system in this chapter. We've looked at how a basic online stock brokerage system can be visualized using various UML diagrams and designed using object-oriented principles and design patterns.

Activity Diagram for the Online Stock Brokerage System

Getting Ready: Jigsaw Puzzle